The following description of background art may include insights, discoveries, understandings or disclosures, or associations together with disclosures not known to the relevant art prior to the present invention but provided by the invention. Some such contributions of the invention may be specifically pointed out below, whereas other such contributions of the invention will be apparent from their context.
Conventionally data conversion is the conversion of computer data from one format to another. Each computer program handles data in a different manner. Data conversions may be as simple as conversion of a text file from one character encoding system to another; or more complex, such as conversion of office file formats, or conversion of image and audio file formats or even more complex with very large databases. There are many ways in which data is converted within the computer environment. This may be seamless, as in the case of upgrading to a newer version of a computer program. Alternatively, the conversion may require processing by means of a special conversion program. In some cases, a program may recognize several data file formats at the data input stage and then is also capable of storing the output data in a number of different formats. Such a program may be used to convert a file format. If the source format or target format is not recognized, then a third program may be available which permits the conversion to an intermediate format, which can then be reformatted using the first program. If there is not a specific program already available, data formats and data models need to be studied and so enable the mapping of data. A database is an organized collection of data, today typically in digital form. The data is typically organized to model relevant aspects of reality, in a way that supports processes requiring this information. In computer science, a database is a particular way of storing and organizing data on a computer so that it can be used efficiently. Different kinds of databases are suited to different kinds of applications, and some are highly specialized to specific tasks. Databases provide a means to manage huge amounts of data efficiently.
A database management system (DBMS) is a system that allows to build and maintain databases, as well as to utilize their data and retrieve information from it. A DBMS defines the database type it supports, as well as its functionality and operational capabilities. A DBMS provides the internal processes for external applications built on them. The end-users of such a specific application are usually exposed only to that application and do not directly interact with the DBMS. Thus end-users enjoy the effects of the underlying DBMS, but its internals are completely invisible to end-users. Database designers and database administrators interact with the DBMS through dedicated interfaces to build and maintain the applications' databases, and thus need some more knowledge and understanding about how DBMSs operate and about external interfaces and tuning parameters of the DBMSs. A database built with one Database Management System (DBMS) is not transferable to another DBMS. Due to the incompatibility of the DBMSs, a database of one DBMS cannot be run on another DBMS.
DBMSs are found at the heart of most database applications. In some situations it is desirable to convert a database from one database structure to another or from one DBMS to another or even from file system to DBMS. This might happen when moving over from using one product to using another product. The new program may be from a new vendor and then uses very likely a different data model. This kind of situation may include that an existing database or databases contain information that has taken years to gather, or when a large database (LDB) or very large database (VLDB) is involved. The chance that products organize data differently in databases is very probable. The knowledge of years need to be transferred to another product's data model.
Conventionally a conversion between different databases, DBMSs or data models includes designing specifications to define a mapping between the different databases, DBMSs or data models, and maybe writing custom application to handle the conversion. Designing the conversion involves a lot of manual work and is time consuming. There might be just a few specifications available about the databases, DBMSs or data models. When the conversion specifications are ready, the conversion can be performed to obtain data in a desired target format. The actual conversion may be also time consuming depending on the size and structure of the transformed databases or DBMSs and available processing power. The conversion is error prone and so test conversions are carried out before the real one. If there are errors they are corrected and a conversion is carried out again. There might be multiple iterations before a result of a conversion is acceptable.
During a final conversion between a source and a target database, if the source database is changed, the resulting target database is already outdated at completion of the conversion. When the final conversion has started the modifications to the source database are not moving anymore to the target database. It takes time to make conversion specifications and iteratively execute conversions to arrive at an acceptable conversion result. The overall conversion work of large databases may take days, weeks, months or even years to be completed. Also after the final conversion, the target database may need to be checked and confirmed to be correct before taking it into use. Also the checking takes time and during that time the source and target databases cannot be used since the target database is not ready. As the final conversion is very time consuming the final conversion is usually executed only once and small errors in the target database are accepted when testing the data.